TI13312 · Ingeniería de Requerimientos de Software

Modelos de Comportamiento Diagramas de Estado y Secuencia

Tema 9 · Universidad Tecmilenio

Identificación de eventos · Representaciones de estado · Interacciones del sistema

ti13312 · cel · tema9-1.htm

Contexto

¿Qué modela el comportamiento de un sistema?

Imagina que vas a preparar las galletas de tu abuela. Tienes la receta (ingredientes), pero también necesitas conocer la secuencia de pasos y los cambios que ocurren en cada etapa: mezclar, hornear, enfriar. Si omites un paso o lo haces fuera de orden, el resultado no será el esperado.

🍪 Analogía de la receta

En el desarrollo de sistemas sucede algo similar. Existe información que requiere el sistema (ingredientes) para alcanzar un objetivo y establecer la secuencia de cambios de estado que asegurarán un resultado esperado.

💡 Preguntas detonantes

¿Cómo modelamos la secuencia de eventos en un sistema?

¿Cómo determinamos los cambios de estado que experimenta?

¿Cómo representamos las interacciones entre usuarios y el sistema?

🌵 En este tema aprenderás a usar dos herramientas poderosas:

Los diagramas de estado modelan los posibles estados de un sistema y cómo transita entre ellos. Los diagramas de secuencia muestran la interacción cronológica entre actores y objetos del sistema dentro de un caso de uso específico.

Objetivos

Objetivos de Aprendizaje

🎯 Al concluir el Tema 9 podrás:

Identificar eventos y su secuencia en un sistema

Reconocer qué constituye un evento (estímulo externo o interno) y determinar el orden en que se presentan dentro de la operación del sistema.

Construir diagramas de estado

Representar los estados de un sistema con rectángulos de esquinas redondeadas, transiciones con flechas, estado inicial (● relleno) y estados finales (◉ semirelleno), incluyendo jerarquías y concurrencia.

Interpretar y elaborar diagramas de secuencia

Modelar la interacción cronológica entre actores, objetos e interfaces del sistema para un caso de uso específico, incluyendo flujos alternativos (ALT).

Complementar la documentación de requerimientos

Usar los diagramas de comportamiento como herramienta complementaria al DFD para ofrecer una visión dinámica del sistema desde perspectivas distintas.

9.1

Identificación de Eventos

"El modelo de comportamiento indica la forma en la que responderá el software a eventos o estímulos externos." — Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico (7ª ed.)
📌 ¿Qué es el modelado de comportamiento?

Permite describir un sistema de forma dinámica a través de eventos que ocurren en tiempos específicos de operación. A diferencia del DFD, no incluye flujo de información, pero sí puede agregar información sobre el procesamiento en cada estado.

¿Qué es un evento?

Cuando un sistema y un actor intercambian información, aparece un evento. La mayoría de los eventos se originan en una actividad del usuario:

🖱️ Clic

El usuario hace clic en un botón o elemento de la interfaz.

📋 Selección

Elegir un elemento de una lista (combo box, menú desplegable).

↩️ Cambio de campo

El usuario cambia el foco a otro campo del formulario.

⌨️ Tecleo

Introducir datos; el sistema puede reaccionar a cada pulsación.

🔁 Modelos de comportamiento apropiados (Sommerville, 2011)

Asumen que los sistemas tienen un número finito de estados y de eventos (estímulos) que pueden causar una transición de un estado a otro.

9.2

Representaciones de Estado: Partes del Diagrama

Para construir un diagrama de estado es necesario conocer sus elementos fundamentales. Los estados definen el comportamiento del sistema en un momento dado, mientras que las transiciones expresan cómo cambia.

🔲 Estado

Define un comportamiento del sistema en un determinado momento, en espera de que un evento ocurra para llevar a cabo una transición. Se representa con un rectángulo de esquinas redondeadas.

Los estados pueden expresarse como mandatos: abrirdepositarretirarcerrar

→ Transición

Describe el cambio de un estado al siguiente. Depende del cumplimiento de condiciones. Se representa con una flecha etiquetada con el evento que la dispara.

Ejemplo: Si la cuenta estaba cerrada y ocurre el evento "abrir", el estado cambia a abierta.

⚫ Estado Inicial

Representado con un círculo relleno (●). Todo diagrama de estado debe tener uno y solo un estado inicial.

◉ Estado(s) Final(es)

Representado con un círculo semirelleno (◉). Un diagrama puede tener uno o varios estados finales.

🔄 Transición Reflexiva

Una transición en la que el estado de inicio y el estado final son el mismo. El sistema regresa a sí mismo tras procesar el evento.

Ejemplo

Cajero Automático — Diagrama de Estado

El siguiente texto describe los eventos del sistema de control de un cajero automático. Los eventos clave están identificados en el análisis:

📖 Descripción del sistema

El cliente introduce su tarjeta e indica el PIN. El sistema compara el PIN. Si es incorrecto, solicita reingresar; si se repite 3 veces, retiene la tarjeta. Si el PIN es correcto, el cliente puede seleccionar una acción (retiro, tiempo aire, consulta de saldo).

Los eventos identificados son: introducir tarjeta, introducir PIN, comparación del PIN, retener la tarjeta por intentos fallidos, seleccionar acción.

insertar tarjeta
Esperando PIN
ingresar PIN
Validando PIN
Tarjeta Retenida
3 intentos fallidos
PIN Incorrecto
PIN correcto
Menú de Opciones
seleccionar acción
Procesando
operación exitosa

Adaptado de Pressman, R. (2010). Figura 7.6. Sólo para fines educativos.

9.2

Jerarquía de Estados y Concurrencia

🏗️ Jerarquía de estados

Definición

En la jerarquía de estados solo es posible llegar a ciertos estados si antes se han pasado por subestados previos.

Ejemplo: Autorización multinivel

Para llegar al estado E (documento liberado), es necesario haber pasado por:

ABCDE

Ejemplo real: la liberación de una compra corporativa requiere aprobación del solicitante, jefe de área, dirección y finanzas.

⚡ Concurrencia

Definición

La concurrencia permite expresar que un evento puede provocar cambios de estado en paralelo: varios procesos que ocurren al mismo tiempo como consecuencia de un solo estímulo.

Ejemplo: Compra en línea

Al confirmar un pago, el sistema simultáneamente:

  • Genera el número de orden
  • Reduce el inventario
  • Envía confirmación por email
  • Notifica al almacén
🌵 ¿Por qué importa esta complejidad?

Los sistemas reales rara vez tienen flujos lineales. Entender la jerarquía y la concurrencia permite modelar con mayor fidelidad el comportamiento esperado del sistema antes de comenzar a programarlo.

9.3

Diagramas de Secuencia

📌 ¿Para qué sirven?

Los diagramas de secuencia son una herramienta útil para aclarar la interacción entre el usuario y el sistema en un caso de uso particular. Son especialmente útiles cuando intervienen varios objetos o sistemas.

Componentes del diagrama

👤 Actores y Objetos

Se listan en la parte superior del diagrama, de izquierda a derecha. Cada uno tiene una línea de vida punteada que desciende verticalmente.

→ Mensajes (flechas)

Las interacciones son flechas horizontales con una etiqueta que indica la llamada, sus parámetros (entre paréntesis) y el valor de respuesta (flecha punteada de regreso).

📦 Rectángulos de activación

Sobre la línea de vida, un rectángulo indica el período durante el cual el objeto está activo (creación, operación y eliminación).

🔀 Flujo ALT

Sommerville incluye un flujo alternativo con un recuadro etiquetado "ALT" para modelar decisiones condicionales dentro del diagrama.

📐 Dirección de lectura

Un diagrama de secuencia se lee de izquierda a derecha (actores) y de arriba hacia abajo (tiempo). El primer mensaje siempre está en la parte superior.

Ejemplo DS1

Diagrama de Secuencia — Historial Médico

Sommerville (2011) ofrece un diagrama que aclara los momentos en los que interactúa un asistente médico con el sistema de historial de pacientes (MHC-PMS):

👩‍⚕️ Recepcionista
🖥️ Interfaz de Usuario
🗄️ MHC-PMS (BD)
🔐 Autenticación
1. solicitarRegistro(PID)
2. buscarReporte(PID, UID)
3. verificarCredenciales(UID)
ALT: Si autorización positiva
4a. retornarInfo( ) → datos del paciente
ELSE: Si autorización negativa
4b. generarError("Acceso denegado")
5. mostrarRegistro( )

Adaptado de Sommerville, I. (2011). Figura 5.6. Sólo para fines educativos.

💡 Clave de interpretación

Observa que la instancia P del objeto PacientInfo se crea e invoca a la base de datos incluiyendo el UID del usuario para verificar si tiene permisos para consultar esa información antes de devolver los datos.

Ejemplo DS2

Diagrama de Secuencia — Actualizar Registro

Este segundo diagrama incluye un actor adicional: el Sistema de Registro de Pacientes (PRS), y explica las interacciones cuando la recepcionista desea actualizar un registro médico:

📋 Flujo principal — paso a paso

Solicitud de acceso

La recepcionista solicita acceso al sistema de registros de pacientes (PRS).

Concesión de acceso

El PRS otorga acceso. A partir de aquí existen dos alternativas (flujo ALT).

ALT 1 — Actualizar información

Se envía la actualización de datos. Si el usuario tiene permisos, el sistema de registros actualiza la base de datos y confirma el evento a la recepcionista.

ALT 2 — Crear resumen

Se crea un resumen que actualiza la información del paciente utilizando una interfaz de usuario llamada Resumen.

Cierre de sesión

La interacción termina cuando la recepcionista sale del sistema invocando el método logout().

Adaptado de Sommerville, I. (2011). Figura 5.7. Sólo para fines educativos.

Comparación

Diagrama de Estado vs. Diagrama de Secuencia

AspectoDiagrama de EstadoDiagrama de Secuencia
¿Qué modela?Los posibles estados del sistema y sus transicionesLa interacción cronológica entre actores y objetos
EnfoqueComportamiento interno del sistema a lo largo del tiempoMensajes intercambiados en un caso de uso específico
Elementos claveEstado, transición, evento, estado inicial/finalActor, objeto, línea de vida, mensaje, activación, ALT
Flujo de datosNo incluye flujo de informaciónMuestra parámetros y valores de retorno
Mejor para...Sistemas reactivos: cajeros, semáforos, flujos de aprobaciónCasos de uso con múltiples actores/objetos interactuando
FuenteSommerville, Pressman, Pohl & RuppSommerville (2011)
📷 Analogía del edificio

El modelado de comportamiento no sustituye otras herramientas como el DFD, sino que complementa la documentación. Es como tomar varias fotos de un edificio desde diferentes ángulos. El edificio es el mismo, pero cada foto ofrece información desde perspectivas distintas.

Ejercicio Práctico

Ejercicio: Sistema de Biblioteca Digital

📚 Modelando una Biblioteca Digital
Escenario

Un estudiante ingresa al portal de la biblioteca digital. Se autentica con usuario y contraseña. El sistema verifica sus credenciales y le muestra el catálogo. El estudiante busca un libro, lo selecciona y solicita un préstamo digital. El sistema verifica si el libro está disponible; si lo está, registra el préstamo por 14 días y envía un correo de confirmación. Si no está disponible, lo añade a la lista de espera.

🎯 Tarea 1: Identificar eventos

Lee el escenario e identifica todos los eventos. ¿Cuáles los inicia el usuario? ¿Cuáles los dispara el sistema automáticamente?

🎯 Tarea 2: Diagrama de estado

Dibuja el diagrama de estado del proceso de préstamo. Incluye estado inicial, estados intermedios (autenticando, buscando, verificando disponibilidad, en préstamo, en lista de espera) y estado final.

🎯 Tarea 3: Diagrama de secuencia

Elabora el diagrama de secuencia del caso de uso "Solicitar préstamo de libro". Incluye al Estudiante, la Interfaz Web, el Sistema de Biblioteca y la Base de Datos. Agrega el flujo ALT para libro no disponible.

🎯 Tarea 4: Validación cruzada

Compara ambos diagramas. ¿Los eventos del diagrama de secuencia corresponden a las transiciones del diagrama de estado? ¿Hay estados o mensajes que falten en alguno de los dos?

Actividad Evaluable

Entregable: Modelado de Comportamiento del Proyecto

📌 Instrucciones Generales

Aplica los conceptos del Tema 9 al sistema de información de tu equipo. Usa los casos de uso definidos previamente como punto de partida para identificar eventos, estados e interacciones.

Selección del caso de uso

Elige un caso de uso de mediana complejidad (con al menos 2–3 actores o decisiones importantes). Describe el escenario principal y los flujos alternativos.

Identificación de eventos

Subraya todos los eventos del caso de uso seleccionado. Clasifícalos como eventos de usuario (clic, selección, escritura) o eventos del sistema (validación, notificación, actualización).

Diagrama de estado completo

Construye el diagrama de estado del proceso. Incluye estado inicial ●, todos los estados intermedios con rectángulos de esquinas redondeadas, transiciones etiquetadas y al menos un estado final ◉. Si aplica, modela jerarquía de estados o concurrencia.

Diagrama de secuencia completo

Elabora el diagrama de secuencia del mismo caso de uso. Incluye todos los actores, objetos del sistema y la base de datos. Representa mensajes con parámetros, respuestas con flechas punteadas y flujos ALT para las decisiones identificadas.

📅 Criterios de Evaluación

Diagrama de estado correcto y completo (30%) · Diagrama de secuencia correcto y completo (35%) · Identificación precisa de eventos (20%) · Coherencia entre ambos diagramas (15%)

Cierre

Puntos Clave del Tema 9

🌊 Modelado dinámico

A diferencia del DFD (estático), los modelos de comportamiento capturan cómo evoluciona el sistema a través del tiempo y en respuesta a eventos.

⚫ Diagrama de Estado

Modela estados, transiciones y eventos. Incluye estado inicial ● y finales ◉. Soporta jerarquía de subestados y concurrencia.

→ Diagrama de Secuencia

Muestra la interacción cronológica entre actores y objetos para un caso de uso. Lee de izquierda a derecha y de arriba hacia abajo.

🔄 Son complementarios

El diagrama de estado muestra el QUÉ (qué estados existen). El de secuencia muestra el CÓMO (cómo interactúan los componentes para lograrlo).

📷 Múltiples perspectivas

Ninguna herramienta es suficiente sola. DFD + Diagrama de clases + Diagrama de estado + Diagrama de secuencia = visión completa del sistema.

💬 Comunicación con el cliente

Estos diagramas facilitan validar con el cliente que el sistema comprende correctamente los flujos del negocio antes de iniciar el desarrollo.

🌵 Analogía final del desierto

Un diagrama de estado es como un mapa de rutas del desierto chihuahuense: muestra los oasis (estados), los caminos (transiciones) y las señales (eventos). Un diagrama de secuencia es el diario de viaje: registra exactamente quién hizo qué, cuándo y en qué orden para llegar de un punto a otro.

Checkpoint

Verificación de Competencias y Glosario

✅ Asegúrate de poder:
  • Reconocer los elementos del diagrama de estado y del diagrama de secuencia para interpretarlos en un proyecto de desarrollo de sistemas
  • Realizar un diagrama general de estado y de secuencia que ofrezca un mejor contexto del sistema en actividades de ingeniería de requerimientos

Glosario del Tema 9

Evento

Intercambio de información entre un sistema y un actor que desencadena una respuesta o un cambio de estado. La mayoría son iniciados por actividades del usuario.

Estado

Define el comportamiento de un sistema en un determinado momento, en espera de que un evento ocurra para llevar a cabo una transición definida.

Transición

Cambio de un estado al siguiente, condicionado al cumplimiento de ciertas condiciones o la ocurrencia de un evento.

Subestado

Estado previo a otro. Común en sistemas con procesos de autorización por niveles (e.g., un documento se libera tras pasar por varias autorizaciones).

PIN

Personal Identification Number: número de identificación otorgado a clientes para usar su tarjeta en un cajero automático.

logout()

Método que se genera cuando el usuario sale de un sistema a través de los mecanismos de salida proporcionados por el sistema.

Referencias

Bibliografía y Recursos

Bibliografía Obligatoria

[1] Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson.
→ Figuras 5.6 y 5.7 — Diagramas de secuencia de MHC-PMS
[2] Pressman, R. (2010). Ingeniería de Software. Un enfoque práctico (7ª ed.). México: McGraw Hill.
→ Figura 7.6 — Diagrama de estado del cajero automático
[3] Pohl, K. y Rupp, C. (2011). Requirements Engineering Fundamentals. EE. UU: Rocky Nook.
[4] Kendall, E. y Kendall, J. (2011). Systems Analysis and Design (8ª ed.). New Jersey: Prentice Hall.

Lecturas Recomendadas

Diagramas de Estado UML

Beckert, B. (s.f.). UML State Machines.
formal.iti.kit.edu/~beckert/teaching/Spezifikation-SS04/10StateCharts.pdf

Diagramas de Secuencia UML

Gutiérrez, D. (2011). UML Diagramas de Secuencia.
codecompiling.net/files/slides/UML_clase_06_UML_secuencia.pdf

UML State Machine — Ágil

Ambler, S. (s.f.). UML 2 State Machine Diagrams: An Agile Introduction.
agilemodeling.com/artifacts/stateMachineDiagram.htm

Comportamiento organizacional

Psicología y Empresa. (s.f.). ¿Qué es el comportamiento organizacional?
psicologiayempresa.com

TI13312 · Ingeniería de Requerimientos de Software

¡Excelente trabajo! Ya modelas el comportamiento de sistemas

Tema 9 completado · Diagramas de Estado y Secuencia

Universidad Tecmilenio © · Todos los Derechos Reservados

1 / 17